"""智能体接口定义"""

from abc import ABC, abstractmethod
from typing import Any, Dict, List, Optional, Union
from .agent_state import AgentState, Task


class AgentInterface(ABC):
    """智能体接口"""
    
    @abstractmethod
    async def initialize(self) -> None:
        """初始化智能体"""
        pass
    
    @abstractmethod
    async def process_task(self, task: Task) -> Dict[str, Any]:
        """处理任务"""
        pass
    
    @abstractmethod
    async def get_capabilities(self) -> List[str]:
        """获取智能体能力"""
        pass
    
    @abstractmethod
    async def get_status(self) -> AgentState:
        """获取智能体状态"""
        pass
    
    @abstractmethod
    async def update_context(self, context: Dict[str, Any]) -> None:
        """更新上下文"""
        pass
    
    @abstractmethod
    async def reset(self) -> None:
        """重置智能体"""
        pass
    
    @abstractmethod
    async def cleanup(self) -> None:
        """清理资源"""
        pass
